package com.syys.privacy.service.impl;

import java.util.List;

import com.syys.common.utils.DateUtils;
import com.syys.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.syys.privacy.mapper.QaPersonalInfoMapper;
import com.syys.privacy.domain.QaPersonalInfo;
import com.syys.privacy.service.IQaPersonalInfoService;
import com.syys.common.core.text.Convert;

/**
 * 收集、使用个人信息的目的及范围Service业务层处理
 *
 * @author ys
 * @date 2021-07-23
 */
@Service
public class QaPersonalInfoServiceImpl implements IQaPersonalInfoService {
    @Autowired
    private QaPersonalInfoMapper qaPersonalInfoMapper;

    /**
     * 查询收集、使用个人信息的目的及范围
     *
     * @param personalInfoId 收集、使用个人信息的目的及范围ID
     * @return 收集、使用个人信息的目的及范围
     */
    @Override
    public QaPersonalInfo selectQaPersonalInfoById(Long personalInfoId) {
        return qaPersonalInfoMapper.selectQaPersonalInfoById(personalInfoId);
    }

    /**
     * 查询收集、使用个人信息的目的及范围列表
     *
     * @param qaPersonalInfo 收集、使用个人信息的目的及范围
     * @return 收集、使用个人信息的目的及范围
     */
    @Override
    public List<QaPersonalInfo> selectQaPersonalInfoList(QaPersonalInfo qaPersonalInfo) {
        return qaPersonalInfoMapper.selectQaPersonalInfoList(qaPersonalInfo);
    }

    /**
     * 新增收集、使用个人信息的目的及范围
     *
     * @param qaPersonalInfo 收集、使用个人信息的目的及范围
     * @return 结果
     */
    @Override
    public Long insertQaPersonalInfo(QaPersonalInfo qaPersonalInfo) {
        if(StringUtils.isNull(qaPersonalInfo.getPersonalInfoId())){
            qaPersonalInfo.setCreateTime(DateUtils.getNowDate());
            qaPersonalInfoMapper.insertQaPersonalInfo(qaPersonalInfo);
        } else {
            qaPersonalInfo.setUpdateTime(DateUtils.getNowDate());
            qaPersonalInfoMapper.updateQaPersonalInfo(qaPersonalInfo);
        }
        return qaPersonalInfo.getPersonalInfoId();
    }

    /**
     * 修改收集、使用个人信息的目的及范围
     *
     * @param qaPersonalInfo 收集、使用个人信息的目的及范围
     * @return 结果
     */
    @Override
    public int updateQaPersonalInfo(QaPersonalInfo qaPersonalInfo) {
        qaPersonalInfo.setUpdateTime(DateUtils.getNowDate());
        return qaPersonalInfoMapper.updateQaPersonalInfo(qaPersonalInfo);
    }

    /**
     * 删除收集、使用个人信息的目的及范围对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteQaPersonalInfoByIds(String ids) {
        return qaPersonalInfoMapper.deleteQaPersonalInfoByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除收集、使用个人信息的目的及范围信息
     *
     * @param personalInfoId 收集、使用个人信息的目的及范围ID
     * @return 结果
     */
    @Override
    public int deleteQaPersonalInfoById(Long personalInfoId) {
        return qaPersonalInfoMapper.deleteQaPersonalInfoById(personalInfoId);
    }
}